函数 解皇后(n)
    局部 空棋盘 = {} -- 初始化一个空棋盘
    因为 i = 1, n 做
        空棋盘[i] = {}
        因为 j = 1, n 做
            空棋盘[i][j] = 假 -- 初始状态下，每个格子都没有皇后
        结束
    结束

    局部 解法集 = {} -- 存放所有解的容器

    局部 函数 回溯(行)
        如果 行 > n 即 -- 如果已经放置了 N 个皇后，找到一个解
            局部 行内容 = ""
            因为 r = 1, n 做
                因为 c = 1, n 做
                    行内容 = 行内容 .. (空棋盘[r][c] 与 "凤 " 或 "囗 ")
                结束
                行内容 = 行内容 .. "\n"
            结束
            表.insert(解法集, 行内容)
            返回
        结束

        因为 列 = 1, n 做 -- 依次尝试在当前行的每个列放置皇后
            如果 安全吗(行, 列, 空棋盘) 即
                空棋盘[行][列] = 真 -- 放置皇后
                回溯(行 + 1) -- 继续在下一行放置皇后
                空棋盘[行][列] = 假 -- 回溯：撤销当前行的皇后放置
            结束
        结束
    结束

    函数 安全吗(行, 列, 空棋盘)
        -- 检查当前列是否有皇后
        因为 r = 1, 行 - 1 做
            如果 空棋盘[r][列] 即
                返回 假
            结束
        结束

        -- 检查左上到右下的对角线是否有皇后
        局部 左上对角线 = 列 - 行 + 1
        因为 r = 1, 行 - 1 做
            局部 c = 左上对角线 + r
            如果 c <= n 与 空棋盘[r][c] 即
                返回 假
            结束
        结束

        -- 检查右上到左下的对角线是否有皇后
        局部 右上对角线 = 列 + 行 - 1
        因为 r = 1, 行 - 1 做
            局部 c = 右上对角线 - r
            如果 c >= 1 与 空棋盘[r][c] 即
                返回 假
            结束
        结束

        返回 真 -- 当前位置可以安全放置皇后
    结束

    回溯(1) -- 从第一行开始放置皇后

    返回 解法集
结束

-- 示例：求解 4 皇后问题
局部 解法集 = 解皇后(4)
因为 _, 解法 属于 序配(解法集) 做
    输出(解法)
结束